<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="com.pizzaonline.utils.*"%>
<%@ page import="com.pizzaonline.JDBC.*" %>
<%@ page import="com.pizzaonline.entites.*" %>
<%@ page import="java.sql.*" %>

<jsp:include page="hautDePage.jsp" flush="true">
	<jsp:param name="title" value="Inscription" />
	<jsp:param name="css" value="css/login.css" />
	<jsp:param name="js" value="js/login.js" />
</jsp:include>

<%
	String mode = request.getParameter("mode");
	String redirectPage = request.getParameter("page");
	DataBase d = new DataBase();
	d.connexionBD();
	Connection c = d.getConnection();
	if (c == null) {
		Utils.rediriger(out, "login.jsp?err="+Utils.getErrorID("SQLConnProb"));
	}
	if (mode != null) {
		if (mode.equals("inscription")) {
%>
			<noscript>Cette page nécessite que le javascript soit activé.
			<br />Pour ce faire, activez-le dans les options de votre navigateur
			</noscript>
			<form action="login.jsp?mode=creation" onsubmit="return checkForm(this)" method="post">
				<table align="center">
					<tr>
						<td>Veuillez remplir le	formulaire suivant :</td>
					</tr>
					<tr>
						<td colspan="2" id="nom" class="erreur"></td>
					</tr>
					<tr>
						<td>Nom: </td>
						<td><input type="text" name="nom" /></td>
					</tr>
					<tr>
						<td colspan="2" id="prenom" class="erreur"></td>
					</tr>
					<tr>
						<td>Prénom: </td>
						<td><input type="text" name="prenom" /></td>
					</tr>
					<tr>
						<td colspan="2" id="telephone" class="erreur"></td>
					</tr>
					<tr>
						<td>Téléphone: </td>
						<td><input type="text" name="telephone" /></td>
					</tr>
					<tr>
						<td colspan="2" id="adresse" class="erreur"></td>
					</tr>
					<tr>
						<td>Adresse: </td>
						<td><input type="text" name="adresse" /></td>
					</tr>
					<tr>
						<td colspan="2" id="user" class="erreur"></td>
					</tr>
					<tr>
						<td>Nom d'utilisateur: </td>
						<td><input type="text" name="user" /></td>
					</tr>
					<tr>
						<td colspan="2" id="password" class="erreur"></td>
					</tr>
					<tr>
						<td>Mot de passe: </td>
						<td><input type="password" name="password" /></td>
					</tr>
					<tr align="center">
						<td colspan="2">
							<input type="submit" value="Valider l'inscription" />
						</td>
					</tr>		
				</table>
			</form>
<%
		} else if (mode.equals("authentification")) {
			String login = request.getParameter("user");
			String password = request.getParameter("password");

			ResultSet res = null;
		
			try {
				res = d.select("login,mdp,status", "utilisateur", "login='" +login+"' and mdp='"+Utils.toMd5(password)+"'");
			} catch (SQLException e) {
				out.print("DEBUG SQL ERROR : <br />" + e + "<br />");
			}
			if (res == null || !res.isBeforeFirst()) //correction: pour tester que le résultat retourné est ensemble vide
			{
				Utils.rediriger(out, "login.jsp?err="+Utils.getErrorID("MauvaisLogin"));
			} else {
				session.setAttribute("login", login); // indiquera que l'utilisateur est loggué
				res.first(); // se placer sur la 1ère ligne du résultat
				session.setAttribute("status", res.getString("status"));
				
				Utils.rediriger(out, (redirectPage==null)?"index.jsp":redirectPage);
				d.closeConnection();
			}
		} else if (mode.equals("creation")) {
			String nom = request.getParameter("nom");
			String prenom = request.getParameter("prenom");
			String tel = request.getParameter("telephone");
			String adr = request.getParameter("adresse");
			String user = request.getParameter("user");
			String mdp = request.getParameter("password");
		
			boolean res = true;
			try {
				res = d.insert("utilisateur", "id_util,login,mdp,nom,prenom,tel,adresse", "null,'"+user+"','"+Utils.toMd5(mdp)+"','"+nom+"','"+prenom+"','"+tel+"','"+adr+"'");
			} catch (SQLException e) {
				if (e.getMessage().toLowerCase().contains("duplicate entry")) {
					Utils.rediriger(out, "login.jsp?mode=inscription&err="+Utils.getErrorID("LoginExistant"));
				}
			}
			if (res) {
				Utils.rediriger(out, "login.jsp?err="+Utils.getErrorID("SQLErreur"));
			} else {
				d.closeConnection();
				session.setAttribute("login", user); // indiquera que l'utilisateur est loggué
				Utils.rediriger(out,(redirectPage==null)?"index.jsp":redirectPage);
			}
		}
	} else // par défaut, afficher le formulaire
	{
%>
			<form action="login.jsp?mode=authentification" method="post">
				<table align="center">
					<tr>
						<td>Bienvenue sur le site de PizzaOnline</td>
					</tr>
					<tr>
						<td>Nom d'utilisateur:</td>
						<td><input type="text" name="user" /></td>
					</tr>
					<tr>
						<td>Mot de passe: </td>
						<td><input type="password" name="password" /> </td>
					</tr>
					<tr align="center">
						<td colspan="2"><input type="submit" value="Connexion" /></td>
					</tr>
				</table>		
		</form>
		<br />
		<a href="login.jsp?mode=inscription" >S'inscrire</a>
<%
	}
	d.closeConnection(); // fermer la connexion 
%>
<jsp:include page="basDePage.jsp" flush="true" />
